package pl.edu.mimuw.irs.rcp.util;

public enum MessageCode {
	
	// Problems
	ERROR_TITLE("error.title"),
	WARNING_TITLE("warning.title"),
	INFO_TITLE("info.title"),
	
	WORKFLOW_CREATE_PROJECT_PROBLEM("workflow.create.project.problem"),
	WORKFLOW_SAVE_SERIALIZE_PROBLEM("workflow.save.serialize.problem"), 
	WORKFLOW_SAVE_INPUT_PROBLEM("workflow.save.input.problem"), 
	WORKFLOW_LOAD_DESERIALIZE_PROBLEM("workflow.load.deserialize.problem"), 
	WORKFLOW_SAVE_FILE_PROBLEM("workflow.save.file.problem"), 
	WORKFLOW_CLEAR_PROBLEM("workflow.clear.problem"),

	ROLES_SAVE_FILE_PROBLEM("roles.save.file.problem"), 
	ROLES_SAVE_SERIALIZE_PROBLEM("roles.save.serialize.problem"),
	ROLES_SAVE_INPUT_PROBLEM("roles.save.input.problem"),
	ROLES_LOAD_DESERIALIZE_PROBLEM("roles.load.deserialize.problem"), 
	ROLES_CLEAR_PROBLEM("roles.clear.problem"),
	
	RESOURCES_SAVE_FILE_PROBLEM("resources.save.file.problem"), 
	RESOURCES_SAVE_SERIALIZE_PROBLEM("resources.save.serialize.problem"),
	RESOURCES_SAVE_INPUT_PROBLEM("resources.save.input.problem"),
	RESOURCES_LOAD_DESERIALIZE_PROBLEM("resources.load.deserialize.problem"), 
	RESOURCES_CLEAR_PROBLEM("resources.clear.problem"),

	REQUIREMENTS_DESERIALIZE_PROBLEM("requirements.deserialize.problem"),
	
	BUCKET_SAVE_FILE_PROBLEM("bucket.save.file.problem"), 
	BUCKET_SAVE_SERIALIZE_PROBLEM("bucket.save.serialize.problem"),
	BUCKET_SAVE_INPUT_PROBLEM("bucket.save.input.problem"),
	BUCKET_LOAD_DESERIALIZE_PROBLEM("bucket.load.deserialize.problem"), 
	BUCKET_CLEAR_PROBLEM("bucket.clear.problem"),
	
	REQUIREMENTS_VIEW_SHOW("requirements.view.show"),
	
	HISTORY_CREATE_FILE_PROBLEM("history.create.file.problem"),
	HISTORY_LOAD_FILE_PROBLEM("history.load.file.problem"),
	HISTORY_LOAD_FILE_MINOR_PROBLEM("history.load.file.minor.problem"),
	HISTORY_LOAD_DESCRIPTOR_PROBLEM("history.load.descriptor.problem"),
	HISTORY_SAVE_DESCRIPTOR_PROBLEM("history.save.descriptor.problem"),
	HISTORY_CLEAR_PROBLEM("history.clear.problem"),
	
	EDITOR_OPEN_PROBLEM("editor.open.problem"), 
	VIEW_OPEN_PROBLEM("view.open.problem"),
	PROJECT_OPEN_PROBLEM("project.open.problem"), 
	PROJECT_DELETE_PROBLEM("project.delete.problem"), 
	ANALYSIS_CREATE_PROBLEM("analysis.create.problem"),
	
	COMMAND_EXECUTION_PROBLEM("command.execution.problem"),

	PERSISTENCE_MANAGER_PROBLEM("persistence.manager.problem"),
	SESSION_PROPERTY_PROBLEM("session.property.problem"),

	BUCKET_ADD_NO_APPLICABLE_RUNS_PROBLEM("bucket.add.no.applicable.runs.problem"),
	
	// Questions
	QUESTION_TITLE("question.title"),
	PROJECT_DELETE_QUESTION("project.delete.question"),
	ROLE_DELETE_QUESTION("role.delete.question"),
	ROLE_RENAME_QUESTION("role.rename.question"),
	ROLE_RENAME_EXISTS_QUESTION("role.rename.exists.question"),
	
	// Editors
	WORKFLOW_EDITOR_TRANSITION_CHANCE("workflow.editor.transition.chance"),
	
	RESOURCES_EDITOR_NEW("resources.editor.new"),
	RESOURCES_EDITOR_CONTENTS("resources.editor.contents"),
	RESOURCES_EDITOR_UNNAMED("resources.editor.unnamed"),
	
	ROLES_EDITOR_NEW("roles.editor.new"),
	ROLES_EDITOR_COPY("roles.editor.copy"),
	ROLES_EDITOR_UNNAMED("roles.editor.unnamed"),
	ROLES_EDITOR_CONTENTS("roles.editor.contents"),
	
	REQUIREMENTS_EDITOR_NAME("requirements.editor.name"),
	REQUIREMENTS_EDITOR_TIME_UNITS("requirements.editor.time.units"),
	REQUIREMENTS_EDITOR_CONTENTS("requirements.editor.contents"),
	
	REPORT_EDITOR_CHART_TOTAL_GROUP("report.editor.chart.total.group"),
	REPORT_EDITOR_CHART_COST_TOTAL_DOM("report.editor.chart.cost.total.domain"),
	REPORT_EDITOR_CHART_COST_TOTAL_VAL("report.editor.chart.cost.total.value"),
	REPORT_EDITOR_CHART_COST_TOTAL_TITLE("report.editor.chart.cost.total.title"),
	REPORT_EDITOR_CHART_TIME_TOTAL_DOM("report.editor.chart.time.total.domain"),
	REPORT_EDITOR_CHART_TIME_TOTAL_VAL("report.editor.chart.time.total.value"),
	REPORT_EDITOR_CHART_TIME_TOTAL_TITLE("report.editor.chart.time.total.title"),
	REPORT_EDITOR_CHART_RESOURCES_GROUP("report.editor.chart.resources.group"),
	REPORT_EDITOR_CHART_COST_RESOURCES_DOM("report.editor.chart.cost.resources.domain"),
	REPORT_EDITOR_CHART_COST_RESOURCES_VAL("report.editor.chart.cost.resources.value"),
	REPORT_EDITOR_CHART_COST_RESOURCES_TITLE("report.editor.chart.cost.resources.title"),
	REPORT_EDITOR_CHART_TIME_RESOURCES_DOM("report.editor.chart.time.resources.domain"),
	REPORT_EDITOR_CHART_TIME_RESOURCES_VAL("report.editor.chart.time.resources.value"),
	REPORT_EDITOR_CHART_TIME_RESOURCES_TITLE("report.editor.chart.time.resources.title"),
	REPORT_EDITOR_CHART_DETAILS_GROUP("report.editor.chart.details.group"),
	
	BUCKET_EDITOR_CHART_TOTAL_GROUP("bucket.editor.chart.total.group"),
	BUCKET_EDITOR_CHART_COST_TOTAL_DOM("bucket.editor.chart.cost.total.domain"),
	BUCKET_EDITOR_CHART_COST_TOTAL_VAL("bucket.editor.chart.cost.total.value"),
	BUCKET_EDITOR_CHART_COST_TOTAL_TITLE("bucket.editor.chart.cost.total.title"),
	BUCKET_EDITOR_CHART_TIME_TOTAL_DOM("bucket.editor.chart.time.total.domain"),
	BUCKET_EDITOR_CHART_TIME_TOTAL_VAL("bucket.editor.chart.time.total.value"),
	BUCKET_EDITOR_CHART_TIME_TOTAL_TITLE("bucket.editor.chart.time.total.title"),
	BUCKET_EDITOR_CHART_RESOURCES_GROUP("bucket.editor.chart.resources.group"),
	BUCKET_EDITOR_CHART_COST_RESOURCES_DOM("bucket.editor.chart.cost.resources.domain"),
	BUCKET_EDITOR_CHART_COST_RESOURCES_VAL("bucket.editor.chart.cost.resources.value"),
	BUCKET_EDITOR_CHART_COST_RESOURCES_TITLE("bucket.editor.chart.cost.resources.title"),
	BUCKET_EDITOR_CHART_TIME_RESOURCES_DOM("bucket.editor.chart.time.resources.domain"),
	BUCKET_EDITOR_CHART_TIME_RESOURCES_VAL("bucket.editor.chart.time.resources.value"),
	BUCKET_EDITOR_CHART_TIME_RESOURCES_TITLE("bucket.editor.chart.time.resources.title"),
	BUCKET_EDITOR_CHART_DETAILS_GROUP("bucket.editor.chart.details.group"),
	
	// Views
	ROLES_VIEW_UNASSIGNED_DESCRIPTION("roles.view.unassigned.description"),
	REQUIREMENTS_VIEW_UNASSIGNED_DESCRIPTION("requirements.view.unassigned.description"),
	
	// Wizards
	WIZARD_FIELD_EMPTY("wizard.field.empty"),
	PROJECT_WIZARD_NAME("project.wizard.name"),
	PROJECT_WIZARD_PROJECT_TITLE("project.wizard.project.title"), 
	PROJECT_WIZARD_PROJECT_NAME("project.wizard.project.name"),
	PROJECT_WIZARD_PROJECT_INTRO("project.wizard.project.intro"),
	PROJECT_WIZARD_RESOURCES_TITLE("project.wizard.resources.title"), 
	GENERATOR_WIZARD_TITLE("generator.wizard.title"), 
	GENERATOR_WIZARD_INTRO("generator.wizard.intro"), 
	GENERATOR_WIZARD_RUNS_COUNT("generator.wizard.runs.count"), 
	
	// Properties
	PROPERTIES_FIELD_ID("properties.field.id"),
	PROPERTIES_FIELD_NAME("properties.field.name"),
	PROPERTIES_FIELD_CHANCE("properties.field.chance"),
	PROPERTIES_FIELD_COST_UNIT("properties.field.cost.unit"),
	PROPERTIES_FIELD_COST_TIME("properties.field.cost.time"),
	PROPERTIES_FIELD_COST_TIME_MEAN("properties.field.cost.time.mean"),
	PROPERTIES_FIELD_COST_TIME_DEVIATION("properties.field.cost.time.deviation"),
	PROPERTIES_VALUE_UNKNOWN("properties.value.unknown"),
	PROPERTIES_CATEGORY_GENERAL("properties.category.general"),
	PROPERTIES_CATEGORY_CUSTOM("properties.category.custom"),
	PROPERTIES_CATEGORY_COST_TIME("properties.category.cost.time"),
	PROPERTIES_CATEGORY_EXTERNAL("properties.category.external"),
	PROPERTIES_CATEGORY_BEHAVIOR("properties.category.behavior"),
	PROPERTIES_CATEGORY_CONTENTS("properties.category.contents"),
	
	// Common
	BUTTON_OK("button.ok"),
	BUTTON_CANCEL("button.cancel"),
	
	// Other texts
	WORKFLOW_SAVE_PROGRESS("workflow.save.progress"),
	ROLES_SAVE_PROGRESS("roles.save.progress"),
	RESOURCES_SAVE_PROGRESS("resources.save.progress"), 
	ANALYSIS_WORKING_PROGRESS("analysis.working.progress"), 
	BUCKET_SAVE_PROGRESS("bucket.save.progress"),  ;
	
	public static final String BUNDLE = "messages";
	
	private String code;
	
	MessageCode(String code) {
		this.code = code;
	}
	
	public String getCode() {
		return code;
	}
}
